在 Python 中(3.4+ ),也可以实现简单的泛型函数。
在 Python 中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式,官方名称 是 single-dispatch
。你或许听不懂,说简单点,就是可以实现第一个参数的数据类型不同,其调用的函数也就不同。
singledispatch
是 PEP443 中引入的 文档地址, 它使用方法极其简单,只要被 singledispatch
装饰的函数,就是一个单分派的 single-dispatch
的泛函数 generic functions
。
单分派:根据一个参数的类型,以不同方式执行相同的操作的行为。
多分派:可根据多个参数的类型选择专门的函数的行为。
泛函数:多个函数绑在一起组合成一个泛函数。
1 | from functools import singledispatch |
1 | int: 20 |
在实际生活中,可能对不同类型的参数处理有点帮助,从而不用去写 if isinstance(obj, list)
之类的判断。